package se19team1e.gui;

import java.awt.event.ActionListener;

/**
 * An abstract gui message box interface, to be referenced by controllers.
 * 
 * <p>
 * This interface is introduced to ease controller unit testing, such that it
 * does not need to create/interact with any real GUI message boxes.
 * </p>
 * 
 * @author lai shiaw san
 * 
 */
public interface MessageBox {

	/**
	 * Shows the message box.
	 */
	void show();

	/**
	 * Hides the message box.
	 */
	void hide();

	/**
	 * Disposes the message box after use.
	 */
	void dispose();

	/**
	 * Sets the message box title.
	 * 
	 * @param title
	 *            Title to display.
	 */
	void setTitle(String title);

	/**
	 * Sets the message to display in the message box.
	 * 
	 * @param message
	 *            Message to display.
	 */
	void setMessage(String message);

	/**
	 * Sets the action listener to call back when ok is clicked.
	 * 
	 * @param actionListener
	 *            Action listener to call back when ok is clicked.
	 */
	void setActionListener(ActionListener actionListener);

}
